* net/tramp.el (tramp-do-copy-or-rename-file-directly): Handle
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 30 Jun 2009 12:09:26 +0000 (12:09 +0000)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 30 Jun 2009 12:09:26 +0000 (12:09 +0000)
also the 'rename case, when setting file modes.  (Bug#3712)

lisp/net/tramp.el

index fdc1e276994b66fd83148b7f25d69d0e39ea2532..cf1f866cb2cf62c22e2b45493dd7f913dc6a68ef 100644 (file)
@@ -3199,7 +3199,9 @@ KEEP-DATE means to make sure that NEWNAME has the same timestamp
 as FILENAME.  PRESERVE-UID-GID, when non-nil, instructs to keep
 the uid and gid from FILENAME."
   (let ((t1 (tramp-tramp-file-p filename))
-       (t2 (tramp-tramp-file-p newname)))
+       (t2 (tramp-tramp-file-p newname))
+       (file-times (nth 5 (file-attributes filename)))
+       (file-modes (tramp-default-file-modes filename)))
     (with-parsed-tramp-file-name (if t1 filename newname) nil
       (let* ((cmd (cond ((and (eq op 'copy) preserve-uid-gid) "cp -f -p")
                        ((eq op 'copy) "cp -f")
@@ -3338,8 +3340,8 @@ the uid and gid from FILENAME."
       ;; Set the time and mode. Mask possible errors.
       (condition-case nil
          (when keep-date
-           (set-file-times newname (nth 5 (file-attributes filename)))
-           (set-file-modes newname (tramp-default-file-modes filename)))
+           (set-file-times newname file-times)
+           (set-file-modes newname file-modes))
        (error)))))
 
 (defun tramp-do-copy-or-rename-file-out-of-band (op filename newname keep-date)